草庐IT

python - 从 torrent 文件中提取 SHA1 哈希

全部标签

为 OAuth 生成 HMAC-SHA1 签名的 Ruby 方法

我正在编写一个小的ruby​​程序来通过OAuth与Twitter一起玩,但还没有找到一个正确的方法来进行HMAC-SHA1签名。到目前为止,我搞砸了Base64.encode64(OpenSSL::HMAC.hexdigest(digest,key,stuff)).chomp但这会输出Twitter拒绝的内容,而不是有效签名。我实际上以更糟糕的方式解决了它,请不要打我耳光:php-r"echorawurlencode(base64_encode(hash_hmac('sha1','#{@signature}','#{llave}',true)));"最后一个确实有效,我可以四处做我的

ruby - 将一个 erb 文件包含到另一个文件中

我正在编写一个最终会输出HTML报告的命令行工具。该工具是用Ruby编写的。(我没有使用Rails)。我试图将应用程序的逻辑保留在一组文件中,并将HTML模板(.erb文件)保留在另一组文件中。不过我遇到了一个非常烦人的问题:我无法成功地将一个.erb文件包含到另一个文件中。具体来说,我正在尝试做这样的事情(在伪代码中):[includeastylesheethere][andanotheronehere]Therestofmydocumentfollows...该示例片段本身是一个erb文件,它是从应用程序逻辑中调用的。我这样做是为了让我的样式表远离主模板,以便更轻松/更清晰地维护应

ruby - 有没有办法从 UTF-8 编码的文件中删除 BOM?

有没有办法从UTF-8编码的文件中删除BOM?我知道我所有的JSON文件都是用UTF-8编码的,但是编辑JSON文件的数据录入人员将它保存为UTF-8和BOM。当我运行我的Ruby脚本来解析JSON时,它因错误而失败。我不想手动打开超过58个JSON文件并转换为没有BOM的UTF-8。 最佳答案 对于ruby​​>=1.9.2,您可以使用模式r:bom|utf-8这应该有效(我还没有结合json测试它):json=nil#definethevariableoutsidetheblocktokeepthedataFile.open('

ruby-on-rails - 如何从另一个目录中获取 ruby​​ 文件

我正在尝试请求一个我在另一个文件中创建的rake文件。这两个文件位于两个不同的目录中。我在第一个文件的顶部有require,在require之后的引号内有第二个文件的名称。它告诉我它无法加载这样的文件。这是否意味着因为它在不同的目录中找不到它?我尝试坚持第二个文件的完整路径,但它仍然无法加载文件。有谁知道如何将第二个文件加载到第一个文件中?提前致谢 最佳答案 require将仅在一组称为“加载路径”的位置中搜索文件。您可以在脚本或irbsession中使用全局变量$LOAD_PATH查看加载路径。如果它不在加载路径中,则不会找到它。

ruby - 在 Ruby 中将嵌套哈希键从 CamelCase 转换为 snake_case

我正在尝试构建API包装器gem,但在将哈希键从API返回的JSON转换为更像Rubyish的格式时遇到了问题。JSON包含多层嵌套,包括哈希和数组。我想做的是递归地将所有键转换为snake_case以便于使用。这是我到目前为止所得到的:defconvert_hash_keys(value)returnvalueif(notvalue.is_a?(Array)andnotvalue.is_a?(Hash))result=value.inject({})do|new,(key,value)|new[to_snake_case(key.to_s).to_sym]=convert_hash_

ruby-on-rails - 从数组创建哈希的最简洁方法

我似乎经常遇到这种情况。我需要使用数组中每个对象的属性作为键从数组构建哈希。比方说我需要一个散列的例子使用ActiveRecordobjecs通过他们的ids键控常用方式:ary=[collectionofActiveRecordobjects]hash=ary.inject({}){|hash,obj|hash[obj.id]=obj}另一种方式:ary=[collectionofActiveRecordobjects]hash=Hash[*(ary.map{|obj|[obj.id,obj]}).flatten]梦想之路:我可以而且可能会自己创建这个,但是Ruby或Rails中有什

ruby-on-rails - Rails 3.1 管道 - 排除 Javascript 文件

我想从管道中排除一个特定的javascript文件(modernizr),因为我希望它单独加载。我想在开头加载Modernizr,并在末尾连接我的其余javascript。有没有办法在3.1的Assets管道中执行与要求相反的操作?IE。排除?提前致谢。亚当。 最佳答案 我选择通过更改来保留链轮的功能//=require_tree到//=require_directory.这会让sprockets自动加载同一目录中的任何文件,但不会进一步加载任何文件夹中的文件。这让我可以将Modernizr.js移动到assets/javascri

ruby - 如何在 Ruby 中获取 `required` 的文件列表?

这纯粹是一个实验,但我想知道是否有可能通过某种元编程在运行时获取require的gem列表。例如,假设我有:require'rubygems'require'sinatra'require'nokogiri'#don'tknowwhattodohere如何在运行时打印出以下内容?thisappneedsrubygems,sinatra,nokogiri 最佳答案 您不能完全做到这一点,因为需要一个文件可能需要其他文件,而Ruby无法区分您需要的文件和其他人需要的文件。p>您可以查看$LOADED_FEATURES以获取所需的每一项内

ruby - 如何从 ruby​​ 中的哈希中获取前 n 个元素?

我有一个哈希,我已经使用值对它进行了排序@friends_comment_count.sort_by{|k,v|-v}现在我只想获取前五个元素的哈希值。一种方法是使用计数器并在其为5时中断。在ruby​​中首选的方法是什么?谢谢 最佳答案 h={'a'=>10,'b'=>20,'c'=>30}#getthefirsttwopHash[*h.sort_by{|k,v|-v}[0..1].flatten]已编辑:#getthefirsttwo(moreconcisely)pHash[h.sort_by{|k,v|-v}[0..1]]

ruby - 如何通过数字索引获取哈希值

有一个散列:h={:a=>"val1",:b=>"val2",:c=>"val3"}我可以引用哈希值:h[:a],h[:c]但我想通过数字索引来引用:h[0]=>val1h[2]=>val3这可能吗? 最佳答案 h.values会给你一个请求的数组。>h.values#⇒[#[0]"val1",#[1]"val2",#[2]"val3"#]UPD虽然h[h.keys[0]]的答案被标记为正确,但我对基准测试有点好奇:h={:a=>"val1",:b=>"val2",:c=>"val3"}Benchmark.bmdo|x|x.repo